package bom.example.common.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author X.I.O
 * @title: RegularUtils
 * @projectName springboot
 * @description: TODO
 * @date 2021/10/29 14:51
 *
 * 正则文字截取工具类
 *
 */
public class RegexUtils {


    /**
     * 通告表达式 截取内容片段
     * @param content
     * @param reg
     * @return
     */
    public static List<String> matcherContentList(String content, String reg){
        Pattern p = Pattern.compile(reg);
        //让正则对象和要操作的字符串相关联；
        Matcher m = p.matcher(content);
        //m.find():将规则作用到字符串上，并进行符合规则的字串查找；
        List<String> stringList=new ArrayList<>();
        while (m.find()) {
            stringList.add(m.group());
        }
        return stringList;
    }


    /**
     * 通过正则 截取文字
     * @param content
     * @param regx
     * @return
     */
    public static String matcherContentString(String content,String regx){
        Pattern p = Pattern.compile(regx);
        //让正则对象和要操作的字符串相关联；
        Matcher m = p.matcher(content);
        //m.find():将规则作用到字符串上，并进行符合规则的字串查找；
        StringBuilder str=new StringBuilder();
        while (m.find()) {
            str.append(m.group());
        }
        return str.toString();
    }

    /**
     *
     * @param prefix 前缀
     * @param suffix 后缀
     * @param content 整段文章
     * @return 截取部分
     */
    public static List<String> getListByContent(String prefix,String suffix,String content){
        String regex = prefix+".*?"+suffix;
        List<String> stringList=matcherContentList(content,regex);
        return stringList;
    }



}
